package com.doitedu.day01

/**
 * @Date 22.6.19
 * @Created by HANGGE
 * @Description
 *  方法是功能的封装  处理数据
 *  函数是功能的封装  处理数据   优先使用
 *  确定:  输入数据类型  处理逻辑  返回值类型(自动推导)
 *  函数的签名
 *  类名.函数名:函数类型
 *  f函数名
 *  :(Int,Int)=>Int 函数类型
 *  val f:(Int,Int)=>Int =  (x:Int , y:Int)=>{x+y}
 *
 *  函数定义方式
 *  方式1
 *  val f = (x:Int,y:Int)=>{x+y}
 *  val f:(Int,Int)=>Int = (x:Int,y:Int)=>{x+y}
 *  方式2
 *  val f:(Int,String)=>String= (i,str)=>i+str
 */
object _07函数定义 {
  // 求两个Int的和
 val f1: (Int, Int) => Int = (x:Int, y:Int) => {
    x+y
  }
  // 只有一行代码  {}  可以省略
 // val f2 = (x:Int,y:Int) =>  x+y

  // 求两个Int的最大值
  val max: (Int, Int) => Int = (x:Int, y:Int)=>{
    if (x>y) x else y
  }
  // 两个字符串拼接  转大写返回
  // (String,String)=>String
  val concat = (str1:String, str2:String) => {
    val str = str1 + str2
    str.toUpperCase()
  }

  def main(args: Array[String]): Unit = {
    //(Int,Int)=>Int
    println(f1(2, 3))
    println(max(12, 21))
    println(concat("hello", "jim"))


  }


}
